package com.cyt.work.association.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.work.association.model.po.WxAssociationNew;
import com.cyt.work.association.model.vo.WxAssociationNewVo;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 社团招新管理-社团招新管理Service层接口类
 *
 * @author han jun
 * @date 2019-8-30 16:17:54
 */
public interface WxAssociationNewService extends BaseService<WxAssociationNew> {

    /**
     * 查询对象集合
     *
     * @param wxAssociationNewVo 对象
     * @return List 对象集合
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    List<WxAssociationNew> listExample(WxAssociationNewVo wxAssociationNewVo);

    /**
     * 查询对象集合
     *
     * @param wxAssociationNewVo 对象
     * @return List 对象集合
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    List<WxAssociationNew> listByUserId(WxAssociationNewVo wxAssociationNewVo);

    /**
     * 分页查询
     *
     * @param wxAssociationNewVo 接受参数对象
     * @param pageNum          分页数
     * @param pageSize         每页显示条数
     * @return ReturnResult
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    ReturnResult page(WxAssociationNewVo wxAssociationNewVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param wxAssociationNewVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    ReturnResult addOrUpdate(WxAssociationNewVo wxAssociationNewVo, SysUser sysUser,String associationIds);




    ReturnResult associationSave(WxAssociationNewVo wxAssociationNewVo, SysUser sysUser);


    ReturnResult associationNumberSet(WxAssociationNewVo wxAssociationNewVo,String number, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxAssociationNewVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    ReturnResult remove(WxAssociationNewVo wxAssociationNewVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxAssociationNewVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    ReturnResult delete(WxAssociationNewVo wxAssociationNewVo, SysUser sysUser);


    /**
     * 结束社团招新
     *
     * @param wxAssociationNewVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-8-30 16:17:54
     */
    ReturnResult endAssociation(WxAssociationNewVo wxAssociationNewVo, SysUser sysUser);


    /**
     * 关闭当天结束的，开启第二天开始的
     * @author han jun
     * @date 2019/9/2 15:10
     */
    void updateStatusByTime();


    /**
     * 获取招新统计数据
     *
     * @param id 招新的id
     * @return Map
     * @author Jun Han
     * @date 2019/9/26 10:39
     */
    Map<String, String> associationNewStatis(String id);

}